package com.leessy.r229.utils

import android.os.Build
import android.os.RecoverySystem
import com.blankj.utilcode.util.FileUtils
import com.blankj.utilcode.util.ToastUtils
import com.leessy.r229.App
import com.leessy.r229.config.Config
import com.leessy.r229.config.Config.otaLastVer
import com.leessy.r229.config.Config.otaStatus
import com.leessy.r229.constants.Constants
import java.io.File

object OtaUtil {

    //默认禁用系统的升级服务
    //启动时初始化ota模块，如果有ota升级成工需要删除文件
    var isUpdate = 0 //0无操作，1ota成功，2ota失败

    fun initFile() {
        if (Config.otaDisable) {
            AppUtil.hideApp("android.rockchip.update.service")
        } else {
            AppUtil.unhideApp("android.rockchip.update.service")
        }
        if (Config.otaStatus) {
            FileUtils.delete(Constants.otaFile)
            Config.otaStatus = false
            if (Config.otaLastVer != Build.DISPLAY) {
                isUpdate = 1
            } else {
                isUpdate = 2
            }
        } else {
            isUpdate = 0
        }
    }

    fun initServerStatu(){
        if (Config.otaDisable) {
            AppUtil.hideApp("android.rockchip.update.service")
        } else {
            AppUtil.unhideApp("android.rockchip.update.service")
        }
    }

    fun upgradeOta() {
        val file = File(Constants.otaFile)
        if (!file.exists()) {
            ToastUtils.showLong("升级文件不存")
            return
        }
        try {
            Config.otaStatus = true
            Config.otaLastVer = Build.DISPLAY
            RecoverySystem.installPackage(App.app, File("/data/media/0/update.zip"))
//            RecoverySystem.installPackage(App.app, File(Constants.otaFile))
        } catch (e: Exception) {
            e.printStackTrace()
            ToastUtils.showLong("异常：$e")
            Config.otaStatus = false
        }
    }
}
